package HTML5_2024_5_31;

public class M {
    // 说说你对redis的理解
    /**
     * 1.基于key/value结构的数据库
     * 2.支持多种数据结构 字符串 哈希散列 列表 无序列表 集合
     */
    // 为什么redis缓存快
    /**
     * 1.基于内存储存
     * 2.非阻塞I/O操作
     *  使用非阻塞的I/O操作模型 且 异步非阻塞操作 - 提高系统处理高并发能力和响应速度
     * 3.优化数据存储结构 和 算法
     */
    // redis持久化
    /**
     * 把内存数据同步到硬盘文件中 当redis重启后再将硬盘中的数据重新加载到内存实现数据恢复的目的
     * 持久化分类: RDB AOF
     * RDB redis默认的持久化机制 快照机制 按照一定时间周期策略把内存中的数据以快照(二进制数据)方式
     *      保存到硬盘中 快照存储
     * 优势: 1.占用空间小 压缩二进制文件 保存的是某个时间点的数据 适合做备份
     *      2.适用于恢复灾难 适合数据传输
     * 缺点: 在服务器故障时容易造成数据丢失 时间周期太短会影响性能 甚至宕机 损失一个或几个时间周期的数据
     * AOF 将redis收到的所有写命令全部保存到磁盘文件最后 类似于MySQL的binlog 重启时 再执行所有保存的写命令
     *     然后重建整个redis的数据库内容
     * 优势: 持久化比RDB更可靠 若出现故障丢失数据量小
     * 缺点: 文件太大 redis会在后台自动进行重写 重写后新文件包含了恢复当前数据的最小命令文件
     */
    // redis缓存时常见问题
    /**
     * 1.缓存击穿: 某一个热点数据过期 但是针对该热点数据的查询量激增 导致频繁从数据库加载数据到缓存中
     * 解决方案: 针对该热点数据设置长过期时间
     *         使用互斥锁 防止请求同时进行
     * 2.缓存穿透:
     * 3.缓存雪崩: 多个热点数据同时丢失或过期 大量请求会直接进入关系型数据库 造成高压导致数据库崩溃
     */
}
